Switches in a network learn forwarding information and fill forwarding tables for packets based on source addresses in packets that the switches receive on their interfaces (e.g., ports). For example, a switch that receives a packet with source media access control (MAC) address M1 on interface P1 makes an entry in its forwarding table: (M1, P1). The switch creates a new entry or refreshes an existing entry in the forwarding table whenever a packet from another switch is received. From then onwards, for any received packets with destination MAC address M1, the switch will forward the packets on interface P1. The entry is expired after a predetermined time, which is referred to as the forwarding entry timeout, whenever there are no packets received having a source MAC address M1 on that interface. If there is no entry in the forwarding table for a MAC address Mi, then the switch floods the network with all packets destined for that MAC address Mi.
Whenever there is communication between two hosts in only one direction, for instance a source host to a destination host, switches on a path are unable to learn the location of the destination host if the switches on the path never receive any packets originating from the destination host. This is known to happen in the case of uni-directional flows or in the case where a forward routing path and a reverse routing path are different. In such cases, all packets from the source host to the destination host will be flooded on all links, which is a pathological flooding. This wastes bandwidth, may waste power at all switches that receive the floods, and leads to congestion in the network.